The present invention relates to integrating a plurality of computer resources, e.g., applications and databases, and, more particularly, to the sharing of data and business processes among connected data applications and data sources regardless of technology or location.
One can refer to the sharing of data and business processes among connected applications and data sources in an enterprise (and sometimes with outside organizations with relationships to the enterprise) as enterprise application integration (EAI). EAI is a business computing term for the plans, methods, and tools aimed at modernizing, consolidating, and coordinating the computer applications in an enterprise. Typically, an enterprise has existing legacy applications and databases and wants to continue to use them while adding or migrating to a new set of applications that exploit the Internet, e-commerce, extranet, and other new technologies.
Interest in EAI is driven by a number of factors including the recent rapid expansion in Internet use, the increase in client/server computing, and corporate mergers and acquisitions. To fully appreciate the scope of the EAI problem, consider a typical large enterprise. Such an enterprise may have more than one platform type such as OS/390, Unix and Windows. The same enterprise may have several dominant technologies such as J2EE, MS/COM, CICS, and batch and may utilize several dominant development environments such as Java, Visual Basic and COBOL. In addition, that same enterprise may use a number of different primary methods for one application to access another, such as RPC, Point-to-Point (P2P) messaging, Publish-and-Subscribe, and [possibly] Extract-Transform-Load (ETL). Thus, enterprises such as the typical large enterprise just described are forced to attempt to integrate computer resources in a highly heterogeneous environment.
EAI can involve developing a total view of an enterprise's business and its applications, seeing how existing applications fit into the view, and then devising ways to efficiently reuse what already exists while adding new applications and data.
EAI can encompass methodologies such as object-oriented programming, distributed, cross-platform program communication using message brokers with Common Object Request Broker Architecture and COM+, the modification of enterprise resource planning (ERP) to fit new objectives, enterprise-wide content and data distribution using common databases and data standards implemented with the Extensible Markup Language (XML), middleware, message queuing, and other approaches.
While EAI has many advantages, it can also have some drawbacks. If an enterprise programs to a vendor specific framework, in the event that the vendor goes out of business, or better technology becomes available, the enterprise may be left in an undesirable position and may have to transition to a new framework or support the old framework using internal resources. For example, if an enterprise adopts vendor specific middleware, the enterprise then becomes highly dependent on that vendor. Furthermore, if the selected middleware does not interface with a particular application, the enterprise typically must develop a custom solution in order to integrate that particular application. An example of middleware is provided by U.S. Pat. No. 6,256,676, issued to Taylor et al. and incorporated herein by reference in its entirety.
Thus, a need exists for systems and methods that: 1) allow integration of new computer resources into an enterprise on an as-needed basis; 2) are cost effective to adopt; and 3) allow integration while avoiding unnecessarily tying an enterprise to a particular technology. A need also exists for systems and methods that allow an enterprise to reduce the requirement for custom coding and that increase an enterprise's return on investment by leveraging its existing information technology investments and by reducing time to market.